package etc

import (
	"os"

	"xp/lib/etc/config"
)

const (
	env = "XP_CONF"
)

var (
	cfg *config.Config
)

func Open(file string) {
	if file == "" {
		file = os.Getenv(env)
	}
	c, err := config.ReadDefault(file)
	if err != nil {
		panic(err)
	}
	cfg = c
}

func Str(session, key string) string {
	s, err := cfg.String(session, key)
	if err != nil {
		panic(session + ", " + key)
	}
	return s
}

func Int(session, key string) int {
	i, err := cfg.Int(session, key)
	if err != nil {
		panic(session + ", " + key)
	}
	return i
}

func Bool(session, key string) bool {
	b, err := cfg.Bool(session, key)
	if err != nil {
		panic(session + ", " + key)

	}
	return b
}

func Float(session, key string) float64 {
	f, err := cfg.Float(session, key)
	if err != nil {
		panic(session + ", " + key)
	}
	return f
}

func ModeDev() bool {
	return !Bool("env", "production")
}

func init() {
	Open("")
}
